package org.jiuling.aliyun.sms.factory.service;

import org.jiuling.aliyun.sms.dto.SignFileListDto;
import org.jiuling.aliyun.sms.enums.SignSourceEnum;
import org.jiuling.aliyun.sms.enums.SignTypeEnum;
import org.jiuling.aliyun.sms.model.*;

import java.util.List;

/**
 * 阿里云签名管理Service
 * @author 紫灵
 * @date 2023年02月16日 20时50分38秒
 */
public interface AliYunSignatureManagementService {

    /**
     * 添加短信签名
     * @param signSource 签名来源
     * @param remark 短信签名申请说明
     * @param signFileList 短信文件列表
     * @param signType 签名类型
     * @param signName 签名名称
     * @return 添加短信模板模型
     */
    AddSmsSignResponseModel addSmsSign(SignSourceEnum signSource, String remark, List<SignFileListDto> signFileList, SignTypeEnum signType,String signName);

    /**
     * 删除短信签名
     * @param signName 签名
     * @return 删除短信签名响应模型
     */
    DeleteSmsSignResponseModel deleteSmsSign(String signName);

    /**
     * 修改短信签名
     * @param signSource 签名来源
     * @param remark 短信签名申请说明
     * @param signFileList 短信文件列表
     * @param signType 签名类型
     * @param signName 签名名称
     * @return 修改短信模板模型
     */
    ModifySmsSignResponseModel modifySmsSign(String signName, SignSourceEnum signSource, String remark, List<SignFileListDto> signFileList, SignTypeEnum signType);

    /**
     * 查询短信签名列表
     * @param pageNum 页码
     * @param pageSize 每页数量
     * @return 查询短信签名列表响应模型
     */
    QuerySmsSignListResponseModel querySmsSignList(int pageNum, int pageSize);

    /**
     * 查询短信签名
     * @param signName 签名名称
     * @return 查询短信签名响应模型
     */
    QuerySmsSignResponseModel querySmsSign(String signName);

}
